home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Go64!
/
Go64_2003-04_2003_CSW_Side_A.d64
/
ed it v1.1
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
10KB
|
351 lines
10 poke53280,0:poke53281,0:print"[147]"
11 print"intro? (j/n)"
12 geta$:ifa$=""then12
13 ifa$="n"then40
14 ifa$<>"j"then12
20 open2,8,2,"titel,s,r"
30 fori=15360to15871:input#2,q:pokei,q:next:close2
40 fori=832to1022:readq:pokei,q:next
45 dim e0(12):fori=1to12:reade0(i):next:dime1(12):fori=1to12:reade1(i):next
50 data 255,255,,128,1,,128,1,,128,1,,128,1,,128,1,,128,1,,255,255,,
55 data ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,96,,,240,,,240,,,96,,,
60 data ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
70 data 255,255,255,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1
75 data 128,,1,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1,128,,1
80 data 128,,1,255,255,255
82 data 24,50,48,50,72,50,24,71,48,71,72,71
83 data 24,50,72,50,120,50,24,92,72,92,120,92
84 v=53248:b=0:y1=50:y2=72
85 f(0)=12:f(1)=11:f(2)=1:f(3)=1:f(4)=1:f(5)=6:f(6)=6:f(7)=6:af=f(0)
86 x$(0)="[151] ja [146] nein":x$(1)="[151] ja nein[146]"
87 gosub2000
90 poke2040,13:pokev+39,7:poke2041,15:pokev+40,1:poke53276,252
100 fori=0to5:poke2042+i,250+i:pokev+41+i,f(i+2):next
105 poke53285,f(0):poke53286,f(1):pokev+23,0:pokev+29,0
110 fori=1to12:pokev+i+3,e0(i):next
115 poke v+2,24:pokev+3,50:pokev+21,255
118 print"";tab(15);"[151][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
120 fori=0to20:printtab(14);"[151][170][144] ":next
125 printtab(15);"[151][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
126 print"[151][175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]"
127 print"[175][175][175][175][175][175][175][175][175][175][175][175][175][175][186]":print"pinsel: [146]":poke56224,af
130 print"";tab(15);"h1 [146]h2 [146][151]f1 [146]f2 [146]f3 [146]f4 [146]f5 [146]f6 [146]"
135 fori=0to7:poke55313+3*i,f(i):next
137 poke55317+b*3,1:poke55318+b*3,1
155 hx=144:hy=66
160 pokev,hx+8*x-r*255:pokev+1,hy+8*y
165 geta$:ifa$=""then165
170 ifa$="[145]"theny=y-1:ify<0theny=20
175 ifa$=""theny=y+1:ify>20theny=0
180 ifa$=""thenx=x+2:ifx=14thenpokev+16,1:r=1
185 ifa$="[157]"thenx=x-2:ifx=12thenpokev+16,0:r=0
186 ifx>22thenx=0:pokev,hx:pokev+16,0:r=0
187 ifx<0thenx=22:pokev+16,1:r=1
190 ifa$="z"thengosub400:goto165
195 ifa$="[133]"thengosub450
200 ifa$="[134]"thengosub620
210 ifa$="[137]"thengosub900
212 ifa$="[138]"thenpokev+21,3+2^(b+2)
213 ifa$="[135]"thenpokev+21,255
215 ifa$="[136]"thenpokev+21,0:end
220 ifa$="_"thenaf=0:poke1952,159
225 ifa$="1"thenaf=f(0):poke56224,af:poke1952,160
230 ifa$="2"thenaf=f(1):poke56224,af:poke1952,160
235 ifa$="3"thenaf=f(b+2):poke56224,af:poke1952,160
240 ifa$="c"then1020
242 ifa$=""thenx=0:y=0:r=0:pokev+16,0
245 ifa$="[147]"thengosub730
250 ifa$="[176]"thengosub1000
260 ifa$="l"thengosub950
265 ifa$="s"thengosub760
270 ifa$="f"thengosub1140
275 ifa$="x"thengosub600
276 ifa$="[216]"thengosub970
280 ifa$="a"thengosub680
283 ifa$="\"thenpokev+21,253
285 ifa$="[193]"thent=16000+b*64+y*3:y1=y:x1=0:gosub681
290 ifx<7thens=0
292 ifx>6thens=1
294 ifx>15thens=2
300 goto160
397 :
398 rem --- punkt setzen ---
399 :
400 poke55391+40*y+x,af:poke55392+40*y+x,af:ad=16000+b*64+y*3+s:w=peek(ad)
405 x1=7-(x-8*s)
410 ifaf=f(1)thenpokead,wor(2^x1+2^(x1-1))
415 ifaf=f(0)thenpokead,wand(255-2^(x1-1)-2^x1)or2^(x1-1)
420 ifaf=f(b+2)thenpokead,wand(255-2^(x1-1)-2^x1)or2^x1
422 ifaf=0thenpokead,wand(255-2^(x1-1)-2^x1)
425 return
447 :
448 rem --- farbe wechseln ---
449 :
450 a1=f(0):a2=f(1):a3=f(b+2):pokev+39,1:pokev+16,0:pokev+1,50:fw=0:r1=0
456 u$="farbwahl":gosub9040:print"[151]<crsr l/r>":print"[152]auswahl"
457 print"[151]<crsr u/d>":print"[152]farbe":print"[151]<return>":print"[152]anwenden"
460 pokev,144+fw*24-r1*255
462 geta$:ifa$=""then460
465 ifa$=""thenfw=fw+1:iffw=5thenpokev+16,1:r1=1
470 ifa$="[157]"thenfw=fw-1:iffw=4thenpokev+16,0:r1=0
472 iffw<0thenfw=0
473 iffw>7thenfw=7
480 ifa$=""thenf(fw)=f(fw)-1:iff(fw)<0thenf(fw)=15
482 ifa$="[145]"thenf(fw)=f(fw)+1:iff(fw)>15thenf(fw)=0
484 ifa$=chr$(13)then goto495
490 poke55313+3*fw,f(fw):goto460
495 poke53285,f(0):poke53286,f(1):fori=0to5:pokev+41+i,f(i+2):next
496 rem print"";a1,a2,a3:printf(0),f(1),f(b+2):pokev+21,0: end
497 iff(0)=a1andf(1)=a2andf(b+2)=a3then570
498 u$="":gosub9040:gosub9000
505 if k=0thengoto520
515 goto570
520 ifa1=f(0)then535
525 fori=0to20:forj=0to22step2:si=55391+i*40+j
530 if(peek(si)and15)=a1thenpokesi,f(0):pokesi+1,f(0)
532 nextj,i
535 ifa2=f(1)then550
540 fori=0to20:forj=0to22step2:si=55391+i*40+j
545 if(peek(si)and15)=a2thenpokesi,f(1):pokesi+1,f(1)
547 nextj,i
550 ifa3=f(b+2)then570
555 fori=0to20:forj=0to22step2:si=55391+i*40+j
560 if(peek(si)and15)=a3thenpokesi,f(b+2):pokesi+1,f(b+2)
562 nextj,i
570 pokev,hx:pokev+1,hy:pokev+16,0
580 af=f(0):poke56224,f(0):poke1952,160:u$="":gosub9040:return
597 :
598 rem --- expand ---
599 :
600 ex=ex+1:ifex>1thenex=0
605 ifex=1then615
610 fori=1to12:pokev+i+3,e0(i):next:pokev+23,0:pokev+29,0
612 pokev+2,peek(v+4+b*2):pokev+3,peek(v+5+b*2):x9=0:return
615 fori=1to12:pokev+i+3,e1(i):next:pokev+23,254:pokev+29,254
616 pokev+2,peek(v+4+b*2):pokev+3,peek(v+5+b*2):return
617 :
618 rem --- bild wechseln ---
619 :
620 pokev+40,2:pokev+21,254:nb=0
622 geta$:ifa$=""then622
625 ifa$=""thenax=ax+1:ifax>2thenax=2
627 ifa$="[157]"thenax=ax-1:ifax<0thenax=0
630 ifa$="[145]"thenay=ay-1:ifay<0thenay=0
632 ifa$=""thenay=ay+1:ifay>1thenay=1
633 ifa$="_"thenpokev+2,peek(v+4+b*2):pokev+40,1:pokev+3,peek(v+5+b*2):goto720
634 ifa$=chr$(13)then641
635 nb=ax+3*ay:pokev+2,peek(v+4+nb*2):pokev+3,peek(v+5+nb*2)
640 goto622
641 if kc=1thenkc=0:return
642 ifnb=bthen720
643 poke55317+b*3,12:poke55318+b*3,12:poke55317+nb*3,1:poke55318+nb*3,1
645 b=nb:t=16000+64*b:tt=0
650 ifpeek(t)<>0thentt=1:goto665
655 ift>16063+64*bthen660
657 t=t+1:goto650
660 iftt=0thengosub9050:goto160
665 gosub9000:ifk=1thengosub9050:goto720
679 :
680 t=16000+b*64:x1=0:y1=0
681 fori=tto16062+b*64:forj=7to0step-2
682 ifa$<>"_"thengeta$
683 ifa$="_"thennextj,i:goto720
685 b1=2^j:b2=2^(j-1):w=peek(i)and(b1+b2):fd=55391+40*y1+x1:pokefd,15
690 ifw=b2thenpokefd,f(0):pokefd+1,f(0):goto710
695 ifw=b1thenpokefd,f(b+2):pokefd+1,f(b+2):goto710
700 ifw=b1+b2thenpokefd,f(1):pokefd+1,f(1):goto710
705 ifw=0thenpokefd,0:pokefd+1,0
710 x1=x1+2:ifx1>22thenx1=0:y1=y1+1
715 nextj,i
720 pokev+40,1:pokev+21,255:return
727 :
728 rem --- loeschen ---
729 :
730 u$="loeschen":gosub9040:print"[152]sprite":print"wirklich"
732 print"loeschen?"
735 gosub9060
740 ifk=1thenreturn
745 fori=16000+b*64to16063+b*64:pokei,0:next
750 u$="":gosub9040:goto9050
757 :
758 rem --- speichern ---
759 :
760 u$="speichern":gosub9040:print"[152]alle 6 sprites":pokev+21,252:gosub9060
764 ifk=0thenss(0)=0:ss(1)=5:goto810
770 gosub9040:fori=0to1
775 ifi=0thenprint"[151]von nr.";
776 ifi=1thenprint"bis"
780 geta$:ifa$=""then780
790 ss(i)=val(a$)-1:ifss(i)<0orss(i)>5then780
792 ifi=1andss(1)<ss(0)then780
793 poke1551+i*6,asc(a$):poke55823+i*6,1:
795 nexti
796 sw=0:fori=ss(0)toss(1):sw=sw+2^(i+2):next:pokev+21,sw
797 print"[152]korrekt?":gosub9060:ifk=1thenpokev+21,252:goto770
800 ifs(1)<s(0)then770
810 gosub9040:print"[151]1-[152]neue datei"
815 print"[151]2-[152]an alte dat.":print" anhaengen"
820 print"[151]_ [152]abbruch
825 [161]a$:[139]a$[178]""[167]825
830 [139]a$[178]"_"[167]u$[178]"":[141]9040:[151]v[170]21,255:[142]
835 [139][197](a$)[179]1[176][197](a$)[177]2[167]825
840 [139]a$[178]"1"[167]so$[178]"w"
845 [139]a$[178]"2"[167]so$[178]"a"
880 [141]9040:[153]"pokename:":[153]">":[141]9100
882 [139]n$[178]""[167][151]v[170]21,255:u$[178]"":[141]9040:[142]
885 [151]v[170]21,0:o$[178]n$[170]",s,"[170]so$:[159]2,8,2,o$
890 [129]i[178]16000[170]ss(0)[172]64[164]16063[170]ss(1)[172]64:[152]2,[194](i):[130]:[160]2:[151]v[170]21,255
895 u$[178]"":[141]9040:[142]
897 :
898 [143] --- key map ---
899 :
900 [151]v[170]21,252:kn[178]0:[140]:[129]i[178]0[164]214:[135]q:[130]
905 [141]9050:[153]"";[163]17);"key map"
910 [153]""
915 [129]i[178]0[164]7:[135]a$,b$:[153][163]16);"poke<";a$;">":[153][163]16);"print#";b$:[130]
920 [153][163]16);"<space> naechste seite":[153][163]20);"<_> zurueck"
925 [161]a$:[139]a$[178]""[167]925
930 [139]a$[178]"_"[167][141]9050:[151]v[170]21,255:[142]
935 [139]a$[179][177]" "[167]925
940 kn[178]kn[170]1:[139]kn[178]3[167]900
945 [137]905
947 :
948 [143] --- laden ---
949 :
950 u$[178]"laden":[141]9040:[153]"pokename":[153]">":[141]9100
952 [139]n$[178]""[167]u$[178]"":[141]9040:[142]
955 [151]v[170]21,0:[159]2,8,2,n$[170]",s,r":[129]i[178]16000[164]16383:[132]2,q:[151]i,q:[130]
960 [160]2:[151]v[170]21,255:b[178][171]1:u$[178]"":[141]9040:[137]620
970 [139]ex[178]0[167][142]
971 [139]x9[178]0[167]x9[178]1:[129]i[178]4[164]14[169]2:[151]v[170]i,[194](v[170]i)[171]24:[130]:[137]973
972 [139]x9[178]1[167]x9[178]0:[129]i[178]4[164]14[169]2:[151]v[170]i,[194](v[170]i)[170]24:[130]
973 [151]v[170]2,[194](v[170]4[170]b[172]2):[142]
997 :
998 [143] --- alles loeschen ---
999 :
1000 u$[178]"alles loeschen":[141]9040:[153]"print#wirklich?":[141]9060
1005 [139]k[178]1[167]1015
1010 [129]i[178]16000[164]16383:[151]i,o:[130]:[141]9050
1015 u$[178]"":[141]9040:[142]
1017 :
1018 [143] --- kopieren ---
1019 :
1020 z1[178]0:z2[178]0:u$[178]"kopieren":[141]9040:[153]"poke1-print#sprite":[153]"poke2-print#auswahl"
1022 [153]"poke_-print#abbrechen"
1025 [161]a$:[139]a$[178]""[167]1025
1027 [139]a$[178]"_"[167]u$[178]"":[141]9040:[137]160
1030 a[178][197](a$):[139]a[179]1[176]a[177]2[167]1025
1035 [141]9040:[139]a[178]1[167]z1[178]0:z2[178]20:[137]1105
1040 z1[178]0:[151]v,hx:[153]"pokevon zeile:"
1045 [151]v[170]1,hy[170]z1[172]8
1050 [161]a$:[139]a$[178]""[167]1050
1055 [139]a$[178]"on"[167]z1[178]z1[171]1:[139]z1[179]0[167]z1[178]0
1060 [139]a$[178]""[167]z1[178]z1[170]1:[139]z1[177]20[167]z1[178]20
1065 [139]a$[178][199](13)[167][151]1555,49[170]z1:[153]"bis zeile:";:[151]55827,1:[137]1075
1070 [137]1045
1075 z2[178]z1
1077 [161]a$:[139]a$[178]""[167]1077
1080 [139]a$[178]""[167]z2[178]z2[170]1:[139]z2[177]20[167]z2[178]20
1082 [139]a$[178]"on"[167]z2[178]z2[171]1:[139]z2[179]z1[167]z2[178]z1
1084 [139]a$[178][199](13)[167]1100
1086 [151]v[170]1,hy[170]z2[172]8:[137]1077
1100 [153]"";z2:[153]"print#korrekt?":[141]9060:[139]k[178]1[167]1020
1105 [141]9040:[153]"pokekopieren nach":[153]"sprite-nr.:";
1110 kc[178]1:[141]620:[153]"";nb[170]1
1120 [153]"print#korrekt?":[141]9060:[139]k[178]1[167]1020
1125 [129]i[178]z1[172]3[164]z2[172]3[170]3:[151]16000[170]nb[172]64[170]i,[194](16000[170]b[172]64[170]i):[130]
1130 u$[178]"":[141]9040:[151]v[170]21,255:[151]v[170]2,[194](v[170]4[170]b[172]2):[151]v[170]3,[194](v[170]5[170]2[172]b)
1135 [137]160
1137 :
1138 [143] --- fuellen ---
1139 :
1140 u$[178]"fuellen":[141]9040:[153]"pokebereich":[153]"(c=a-alles)
1142 print"[152]linke obere":print"ecke waehlen":print"[151]<return>"
1144 gosub9230:ifa$="_"thena$="":pokev+39,7:u$="":gosub9040:return
1150 fory=ay(1)toay(2):forx=ax(1)toax(2)step2
1152 ifx<7thens=0
1154 ifx>6thens=1
1156 ifx>15thens=2
1158 gosub400:nextx,y:u$="":gosub9040:return
1997 :
1998 rem --- intro ---
1999 :
2000 print"[147]"
2001 fori=0to7:poke2040+i,240+i:next
2002 poke53276,255:pokev+23,63:pokev+29,255:a=110
2005 pokev,100:pokev+2,148:pokev+4,196:pokev+6,100:pokev+8,148:pokev+10,196
2010 pokev+1,70:pokev+3,70:pokev+5,70:pokev+7,112:pokev+9,112:pokev+11,112
2015 pokev+13,154:pokev+15,154:pokev+12,148:pokev+14,196
2020 poke53285,7:poke53286,9:pokev+41,1:pokev+42,15:pokev+43,12:pokev+44,11
2022 pokev+45,1:pokev+46,1:pokev+21,255
2024 print" f2 waehrend d. programm zeigt keymap"
2026 geta$:ifa$=""then2026
2030 print"[147]":return
8997 rem ---------------
8998 rem - subroutinen -
8999 rem ---------------
9000 print"[152]matrix":print"aktualisieren?"
9005 gosub9060:gosub9040:return
9019 :
9020 fori=0to20:printtab(16);"[144] ":next
9030 pokev+40,1:goto100
9037 :
9038 :rem textfeld loeschen
9039 :
9040 print"":fori=0to10:print" ":next:print"[151]"
9042 ifu$=""thenreturn
9043 print"";u$:return
9049 :
9050 print"":fori=0to20:printtab(15);"[144] ":next
9055 return
9058 :
9059 rem --- ja/nein frage ---
9060 k=0
9061 print"";x$(k)
9065 geta$:ifa$=""then9065
9070 ifa$=""thenk=k+1:ifk>1thenk=0
9071 ifa$="[157]"thenk=k-1:ifk<0thenk=1
9075 ifa$=chr$(13)thengosub9040:return
9077 goto 9061
9097 :
9098 rem --- tippen ---
9099 :
9100 poke1665,160:n$="":l=0
9105 geta$:ifa$=""then9105
9110 ifa$=chr$(13)thenn$=left$(n$,10):return
9112 b=asc(a$):ifb=20thenprint"[145]> ":goto9100
9113 ifb<32orb>90then9105
9114 ifb=34orb=44then9105
9115 ifb>64thenb=b-64
9116 l=l+1:ifl>10thenl=10
9118 ifl<11thenn$=n$+a$:poke1664+l,b:poke1665+l,160
9120 goto9105
9227 :
9228 rem --- auswahl ---
9229 :
9230 pokev+39,5:ax(1)=x:ay(1)=y:ar=r
9233 fori=1to2:ax(2)=ax(1):ay(2)=ay(1)
9235 geta$:ifa$="[176]"thenax(1)=0:ax(2)=22:ay(1)=0:ay(2)=20:nexti:goto9280
9236 ifa$="_"thennexti:return
9237 pokev,hx+8*ax(i)-ar*255:pokev+1,hy+8*ay(i)
9250 ifa$=""thenax(i)=ax(i)+2:ifax(i)=14thenar=1:pokev+16,1
9252 ifa$="[157]"thenax(i)=ax(i)-2:ifax(i)=12thenar=0:pokev+16,0
9254 ifa$=""thenay(i)=ay(i)+1:ifay(i)>20thenay(i)=20
9256 ifa$="[145]"thenay(i)=ay(i)-1:ifay(i)<ay(i-1)thenay(i)=ay(i-1)
9260 ifa$=chr$(13)thengoto9270
9265 ifax(i)>22thenax(i)=22
9267 ifax(i)<ax(i-1)thenax(i)=ax(i-1)
9269 goto9235
9270 print"[151]_ abbrechen":print"[152]rechte untere"
9275 nexti
9280 pokev+39,7:x=ax(2):y=ay(2):r=ar:return
9300 data crsr,bewegen
9302 data z,"punkt setzen",a,"matrix aktualisieren",shift+a
9305 data "ab crsr-pos akt.",s,speichern,l,laden,f1,farbwahl,f2,key-map
9310 data f3,"ausschnitt waehlen",f4,"nur auschnitt zeigen",f5,"alles zeigen"
9312 data _,loeschen/abbruch,1,"pinselfarbe 1 (h1)",2
9315 data "pinselfarbe 2 (h2)",3,"pinselfarbe 3 (f?)",c,kopieren,x
9317 data expand/unexpand,shift+x,"sprites verschieben",clr
9320 data "sprite loeschen",home,"crsr in homeposition",c=+a,"alles loeschen",f
9325 data fuellen,shift+f,"leerstellen fuellen",\,"auschnittfenster aus"